Измените проект на основе предыдущего проекта Vivado Hello World или E2PROM:
Схема следующая: Она включает две клавиши и два светодиода, подключенных к PS MIO, две клавиши и два светодиода, подключенных к PS EMIO, и один порт ввода-вывода EMIO для управления зуммером.
Для настройки стороны PS, напрямую нажмите на GPIO MIO. По умолчанию выбраны все выводы. Нам нужно использовать PS_KEY0, соответствующий MIO0, PS_KEY1, соответствующий MIO11, PS_LED0, соответствующий MIO7, и PS_LED1, соответствующий MIO8.
Пять портов ввода-вывода должны быть установлены как EMIO, соответствующие двум клавишам, двум светодиодам и одному зуммеру. Поэтому при настройке просто выберите 5. Если вы выберете больше, вам также придется настроить ограничения для дополнительных выводов в последующих ограничениях выводов:
Нажмите OK. Аналогично, щелкните правой кнопкой мыши по GPIO_0 и выберите Make External. Программное обеспечение автоматически сгенерирует внешние выводы, соответствующие интерфейсу EMIO в модуле верхнего уровня:
Следующие шаги такие же, как и для IIC, с единственным отличием в ограничениях выводов. Здесь я буду использовать метод флажков для настройки ограничений выводов, как показано на схеме:
В интерфейсе, [0], [1], [2], [3] и [4] соответствуют PL_KEY0, PL_KEY1, PL_LED0, PL_LED1 и BEEP соответственно.
После этого последовательно выполните синтез, реализацию и генерацию битового потока, и, наконец, сгенерируйте новый файл .xsa:
В Vitis обновите проект платформы: Щелкните правой кнопкой мыши по созданному проекту платформы, выберите Update Hardware Specification, укажите путь к файлу .xsa. Появится следующее всплывающее окно; нажмите OK, что означает успешное обновление. Проект платформы будет помечен как "out of date", после чего вам нужно будет пересобрать проект платформы.
Аналогично, нажмите File-->new-->Application Project;
Выберите пустой проект .c;
Затем добавьте файл .c.
Программа реализует управление четырьмя светодиодами с помощью четырех клавиш соответственно. При нажатии клавиши соответствующий светодиод загорается; при отпускании клавиши светодиод гаснет.
Следует отметить, что номера выводов для MIO — 0-53, а номера выводов для EMIO начинаются с 54. Поскольку в этот раз для EMIO было расширено 5 выводов, соответствующие номера — 54-58
x// PS key and LED pin definitions// PS LED0 pin: MIO7// PS LED1 pin: MIO8// PS KEY0 pin: MIO0// PS KEY1 pin: MIO11
// 0~53 is for MIO, EMIO starts from 54// EMIO pin definitions// EMIO KEY0 pin// EMIO KEY1 pin// EMIO LED0 pin// EMIO LED1 pin// EMIO BEEP pin
После успешной компиляции проекта, подключите JTAG отладочной платы к компьютеру с помощью кабеля USB Type-C. Используйте другой кабель USB Type-C для подключения PS UART отладочной платы к компьютеру.
На компьютере откройте инструмент серийной отладки MobaXterm и установите соединение с PS UART отладочной платы.
В Vitis войдите в режим отладки: В разделе Debug As выберите первый вариант. Запуск на полной скорости позволит вам видеть отладочную информацию через последовательный порт, и вы будете наблюдать соответствующие явления на отладочной плате.
После запуска, нажатие или отпускание соответствующих клавиш будет выводить информацию о нажатии или отпускании клавиши в последовательный порт, а соответствующие светодиоды будут загораться или гаснуть.